from collections import namedtuple

# 有一段通过下标访问列表或者元组中元素的代码，但是难以阅读，想通过名称来访问元素
def demo_1():
    # 命名元祖的另一个用途是作为字典的代替，字典需要更多的内存空间
    # 如果需要构建一个非常大的包含字典的数据结构，使用命名元祖会更高效，但是命名元祖是不可更改的
    Subscriber = namedtuple('Subscriber', ['addr', 'joined'])
    sub = Subscriber('kepler@123.com', '2019-01-01')
    print(sub.addr)
    print(sub.joined)
    addr, joined = sub
    print(addr)
    print(joined)

if __name__ == '__main__':
    demo_1()